<?php //
include_once("Conexion.php");

//Declaracion
class M_Perfil {
    //Variable de la clase
    private $id_Usuario;
    private $id_Rol;
    private $usuCreac;
    private $usuModif;
    
    //Metodo utilizado para obtener todos los Usuario por Rol
    function searchPerfiles_Uno() {
        //Le deciamos que la locacion es lenguaje español
        setlocale(LC_CTYPE, 'es');
        //La sentencia a ejecutar
        $sql = " SELECT u.id_usuario, u.username 
        FROM tbl_perfil as p join tbl_usuario as u on p.id_usuario = u.id_usuario 
        where p.eliminado = false and p.id_rol=$this->id_Rol ";
      
            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Ejecutamos la sentencia
            $rs = pg_query($cn,$sql);
            //Creamos un array que almacenara los datos de la sentencia
            $registros = array();
            //Recorremos el resultado de la consulta y lo almacenamos en el array
            while ($reg = pg_fetch_array($rs)) {
                array_push($registros, $reg);
            }
            //Liberamos recursos
           // pg_free_result($rs);
            pg_close($cn);
    
        return $registros;
    }
    
    
    //Metodo utilizado para insertar una Rol en la base de datos
    function insertPerfil() {
        $rpta;
        try {
            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Comenzamos la transaccion
            pg_query($cn,"BEGIN");
            //Elaboramos la sentencia
            $sql = " insert into tbl_perfil values ($this->id_Usuario,$this->id_Rol,'$this->usuCreac',now(),null,null,false) ";
            //Ejecutamos la sentencia
            $result = pg_query($cn,$sql);
            if (!$result) {
                //Si no obtiene resultados anulamos la transaccion
                pg_query($cn,"ROLLBACK");
                $rpta = false;
            } else {
                //Si obtiene resultados confirmamos la transaccion
                pg_query($cn,"COMMIT");
                $rpta = true;
            }
            //Cerramos la conexion
            pg_close($cn);
        } catch (exception $e) {
            try {
                pg_query($cn,"ROLLBACK");
            } catch (exception $e1) {

            }
            try {
                pg_close($cn);
            } catch (exception $e1) {

            }
            $rpta = false;
        }
        return $rpta;
    }
    
    //Metodo utilizado para actualizar un ROL
    function deletePerfil() {
        $rpta;
        try {
            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Comenzamos la transaccion
            pg_query($cn, "BEGIN");
            //Elaboramos la sentencia
            $sql = " delete from tbl_perfil where id_rol = $this->id_Rol ";
            //Ejecutamos la sentencia
            $result = pg_query($cn,$sql);
            $rpta;
            if (!$result) {
                //Si no obtiene resultados anulamos la transaccion
                pg_query($cn,"ROLLBACK");
                $rpta = false;
            } else {
                //Si obtiene resultados confirmamos la transaccion
                pg_query($cn,"COMMIT");
                $rpta = true;
            }
            //Cerramos la conexion
            pg_close($cn);
        } catch (exception $e) {
            try {
                pg_query("ROLLBACK", $cn);
            } catch (exception $e1) {

            }
            try {
                pg_close($cn);
            } catch (exception $e1) {

            }
            $rpta = false;
        }
        return $rpta;
    }
    
    
    //Get y Set de la clase
    function getId_Rol() {
        return $this->id_Rol;
    }
    
    function getNombre() {
        return $this->nombre;
    }

    function getDescripcion() {
        return $this->descripcion;
    }

    function setIdRol($id_rol) {
        $this->id_Rol = $id_rol;
    }
    
    function setIdUsuario($id_usuario) {
        $this->id_Usuario = $id_usuario;
    }
    
    function setNombre($nombre) {
        $this->nombre = $nombre;
    }

    function setDescripcion($descripcion) {
        $this->descripcion = $descripcion;
    }
    
    function setUsuCreac($usuario) {
        $this->usuCreac = $usuario;
    }
    
    function setUsuModif($usuario) {
        $this->usuModif = $usuario;
    }
}
?>